package com.ai.enviro.exception;




import com.ai.enviro.common.CodeEnum;

import java.util.List;
import java.util.Objects;

/**
 * 用于检查条件，减少if语句使用
 */
public class AssertUtils {
    public static void notNull(Object value, String msg) {
        if (value == null) {
            throw new ValidateException(msg);
        }
    }

    public static void notNull(Object value, CodeEnum errorCode) {
        if (value == null) {
            throw new ValidateException(errorCode.getCode(), errorCode.getMsg());
        }
    }

    public static void notBlank(String value, String msg) {
        if (value == null || value.isEmpty()) {
            throw new ValidateException(msg);
        }
    }

    public static void notBlank(String value, CodeEnum errorCode) {
        if (value == null || value.isEmpty()) {
            throw new ValidateException(errorCode.getCode(), errorCode.getMsg());
        }
    }

    public static void notEmpty(List list, String msg) {
        if (list == null || list.isEmpty()) {
            throw new ValidateException(msg);
        }
    }

    public static void notEmpty(List list, CodeEnum errorCode) {
        if (list == null || list.isEmpty()) {
            throw new ValidateException(errorCode.getCode(), errorCode.getMsg());
        }
    }


    public static void requireTrue(boolean value, String msg) {
        if (!value) {
            throw new ValidateException(msg);
        }
    }

    public static void requireTrue(boolean value, CodeEnum errorCode) {
        if (!value) {
            throw new ValidateException(errorCode.getCode(), errorCode.getMsg());
        }
    }

    public static void requireFalse(boolean value, String msg) {
        if (value) {
            throw new ValidateException(msg);
        }
    }

    public static void requireFalse(boolean value, CodeEnum errorCode) {
        if (value) {
            throw new ValidateException(errorCode.getCode(), errorCode.getMsg());
        }
    }

    public static void requireEquals(Object value1, Object value2, String msg) {
        if (!Objects.equals(value1, value2)) {
            throw new ValidateException(msg);
        }
    }

    public static void requireEquals(Object value1, Object value2, CodeEnum errorCode) {
        if (!Objects.equals(value1, value2)) {
            throw new ValidateException(errorCode.getCode(), errorCode.getMsg());
        }
    }
}
